#pragma once
#include "Template.h"
#include <string>
#include <iostream>

class Person
{
	friend class CouplesList;
	friend class PersonList;
	friend class Dating;

private:
	string name;
	string gender;
	List <string> interestList;
	bool single;

public:
	Person(void)
	{
		name = "";
		gender = "";
		single = true;
	}

	Person(Person &p)
	{
		this->name = p.name;
		this->gender = p.gender;
		this->interestList = p.interestList;
		this->single = p.single;
	}

	Person& operator=(Person &p)
	{
		this->name = p.name;
		this->gender = p.gender;
		this->interestList = p.interestList;
		this->single = p.single;
		return *this;
	}

	~Person(){}

	friend ostream &operator <<(ostream &out, Person &p)
	{
		out << p.name << endl;
		out << p.gender << endl;
		out << p.interestList << endl;
		out << p.single << endl;
		return out;
	}

	List <string> getList()
	{
		return interestList;
	}


};